package com.autism.thread.thread_pool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * Executors :线程池的工厂类，用来生成线程池
 * Executors中的静态方法：
 *      newFixedThreadPool(int nThread)  创建一个可重用固定线程数量的线程池
 *      nThread：线程数量
 *      返回的是ExecutorService的接口实现类
 *
 *      ExecutorService：用来从线程池中获取线程，调用start方法，执行线程任务
 *          submit：提交一个runnable任务用于执行
 *
 *     线程池的使用步骤：
 *      1.使用线程池的工厂类提供的静态方法产生一个指定线程数量的线程池
 *      2.创建一个类，实现Runnable接口，重写run（），设置线程任务
 *      3.调用ExecutorService的submit，传递线程任务，开启线程，执行润方法
 *      4.调用ExecutorService的shutdown销毁线程（不推荐）
 *
 * */
public class ThreadPoolDemo {
    public static void main(String[] args) {
        ExecutorService executors = Executors.newFixedThreadPool(2);

        executors.submit(new MyRunnable());
        executors.submit(new MyRunnable());
        executors.submit(new MyRunnable());
        executors.submit(new MyRunnable());
    }
}
